import jieba
import json,re
from os import path
from scipy.misc import imread
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator


f = open('空调.json','r',encoding='UTF-8')
myjson = json.loads(f.read())
zhPattern = re.compile(u'[\u4e00-\u9fa5]+')
all_str = ""
for sku in myjson['list']:
	strs = ""
	for k,v in sku.items():
		if zhPattern.search(k):
			for comments in v:
				strs = strs + comments['content']
	all_str = all_str + strs
with open("ciyun.txt",'w',encoding='utf-8') as file:
	file.write(all_str)



back_coloring_path = "aaa.jpg" # 设置背景图片路径
font_path = 'simkai.ttf' # 为matplotlib设置中文字体路径没

back_coloring = imread(back_coloring_path)# 设置背景图片
# 设置词云属性
wc = WordCloud(font_path=font_path,  # 设置字体
	background_color="white",  # 背景颜色
	max_words=2000,  # 词云显示的最大词数
	mask=back_coloring,  # 设置背景图片
	max_font_size=100,  # 字体最大值
	random_state=42,
	width=1000, height=860, margin=2,# 设置图片默认的大小,但是如果使用背景图片的话,那么保存的图片大小将会按照其大小保存,margin为词语边缘距离
	)

# 生成词云, 可以用generate输入全部文本(wordcloud对中文分词支持不好,建议启用中文分词),也可以我们计算好词频后使用generate_from_frequencies函数
wc.generate(all_str)
# wc.generate_from_frequencies(txt_freq)
# txt_freq例子为[('词a', 100),('词b', 90),('词c', 80)]
# 从背景图片生成颜色值
image_colors = ImageColorGenerator(back_coloring)

plt.figure()
# 以下代码显示图片
plt.imshow(wc)
plt.axis("off")
wc.recolor(color_func=image_colors)
# plt.show()
# 绘制词云

# 保存图片
wc.to_file('fenxi.jpg')